/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.fulbitofacil.dao;

/**
 *
 * @author SISTEMAS
 */

import edu.upc.fulbitofacil.entity.*;
import java.util.*;

public class AdmPersonaDAO {
    //1ero. defino mi lista de un tipo dado
    List<Personas> MyarrPersonas;
    
    //2do. En el constructor inicializo
    public AdmPersonaDAO(){
 	MyarrPersonas = new ArrayList<Personas>();
 	
    }		

    
    public void registrarPersona(String idpers,   String tippers,
                                 String nompers,  String appat,
                                 String apmat,    String sexo,
                                 String tipdoc,   String numdoc,
                                 String email,    String passw,
                                 Calendar fecnac, String nrocel)
                                 throws FulbitoFacilException {
        
        //validar datos en blanco	
	validarDatos(tippers, nompers, appat, apmat, sexo, 
                     tipdoc, numdoc, email);   
                               
            
        //validar que no haya duplicados
        validarDuplicado(numdoc, email); 
        
        //Registro de Personas
	Personas nuevoPersona = new Personas(idpers, tippers, nompers, 
                                             appat,  apmat,   sexo, 
				             tipdoc, numdoc,  email, 
                                             passw,  fecnac,  nrocel);
        
        
        //a�aden a la lista
        MyarrPersonas.add(nuevoPersona);
        
        
    }

    private void validarDatos(String tippers, String nompers, 
                              String appat,   String apmat, 
                              String sexo,    String tipdoc, 
                              String numdoc,  String email) 
                              throws FulbitoFacilException{
        
        String mensaje = "";
	if (tippers.equals(""))
	    mensaje += "Tipo de persona no puede ser vacio";
	if (nompers.equals(""))
	    mensaje += "\n Nombre no puede ser vacio";
	if (appat.equals(""))
	    mensaje += "\n Apellido paterno no puede ser vacio";
	if (apmat.equals(""))
	    mensaje += "\n Apellido materno no puede ser vacio";
	if (sexo.equals(""))
	    mensaje += "\n Sexo no puede ser vacio";
	if (tipdoc.equals(" "))
	    mensaje += "\n Tipo documento no puede ser vacio";
        if (numdoc.equals(" "))
	    mensaje += "\n Numero documento no puede ser vacio";
        if (email.equals(" "))
	    mensaje += "\n Email no puede ser vacio";
        	    	    
	if (! mensaje.equals(""))
	   throw  new FulbitoFacilException(mensaje);
               
    }
    
    private void validarDuplicado(String numdoc, String email)
                 throws FulbitoFacilException {
        
        if(PersonaExiste(numdoc, email)) 
        	throw new FulbitoFacilException("Persona Duplicada");
        
    }	
    
    private boolean PersonaExiste(String numdoc, String email) {
		boolean existe = false;
	    
	    //   and &&   , || or
        for(Personas Personas : MyarrPersonas)
            if (Personas.getnumdoc().equals(numdoc) ||
                Personas.getemail().equals(email))
                existe = true;
		return existe;
	}
    
    public Personas buscarPersona(String idpers) {
        for(Personas persona : MyarrPersonas)
            if (persona.getidpers().equals(idpers))
                return persona;
        return null;
	}
    
}
